'\" e
'\"! eqn | mmdoc
'\"macro stdmacro
.ds Vn Version 1.2
.ds Dt 6 March 1997
.ds Re Release 1.2.0
.ds Dp May 02 11:53
.ds Dm 37 beginsurf
.ds Xs 47264 4 beginsurface.gl
.TH GLUBEGINSURFACE 3G
.SH NAME
.B "gluBeginSurface, gluEndSurface
\- delimit a NURBS surface definition

.SH C SPECIFICATION
void \f3gluBeginSurface\fP(
GLUnurbs* \fInurb\fP )
.nf
.fi

void \f3gluEndSurface\fP(
GLUnurbs* \fInurb\fP )
.nf
.fi

.EQ
delim $$
.EN
.SH PARAMETERS
.TP \w'\f2nurb\fP\ \ 'u 
\f2nurb\fP
Specifies the NURBS object (created with \%\f3gluNewNurbsRenderer\fP).
.SH DESCRIPTION
Use \%\f3gluBeginSurface\fP to mark the beginning of a NURBS 
surface definition. After 
calling \%\f3gluBeginSurface\fP, make one or more calls to
\%\f3gluNurbsSurface\fP to define the attributes of the surface.
Exactly one of these calls to \%\f3gluNurbsSurface\fP must have a
surface type of \%\f3GL_MAP2_VERTEX_3\fP or \%\f3GL_MAP2_VERTEX_4\fP.
To mark the end of the NURBS surface definition, call
\%\f3gluEndSurface\fP.
.P
Trimming of NURBS surfaces is supported with \%\f3gluBeginTrim\fP, 
\%\f3gluPwlCurve\fP, \%\f3gluNurbsCurve\fP, and \%\f3gluEndTrim\fP. See the
\%\f3gluBeginTrim\fP reference page for details.
.P
GL evaluators are used to render the NURBS surface as a set of polygons.
Evaluator state is preserved during rendering
with \f3glPushAttrib\fP(\%\f3GL_EVAL_BIT\fP) and 
\f3glPopAttrib\fP().  
See the \f3glPushAttrib\fP reference page for details on exactly what state
these calls preserve.
.SH EXAMPLE
The following commands render a textured NURBS surface with normals;
the texture coordinates and normals are also described as NURBS surfaces:
.sp
.Ex
gluBeginSurface(nobj);
   gluNurbsSurface(nobj, ..., GL_MAP2_TEXTURE_COORD_2);
   gluNurbsSurface(nobj, ..., GL_MAP2_NORMAL);
   gluNurbsSurface(nobj, ..., GL_MAP2_VERTEX_4);
gluEndSurface(nobj);
.Ee
.sp
.SH SEE ALSO
\%\f3gluBeginCurve(3G)\fP, \%\f3gluBeginTrim(3G)\fP, \%\f3gluNewNurbsRenderer(3G)\fP, 
\%\f3gluNurbsCurve(3G)\fP, \%\f3gluNurbsSurface(3G)\fP, \%\f3gluPwlCurve(3G)\fP



